#pragma once
#include "../../../PocelainMacro.h"
#include "../../Uniform.h"
#include <string>
#include <map>
POCELAIN_NAMESPACE_BEGIN
class ShaderLib
{
public:
    struct ShaderItem
    {
        std::map<std::string,IUniform*> uniforms;
        std::string vertexShader;
        std::string fragmentShader;
    };
    typedef std::map<std::string,ShaderItem> lib_t;
    static const lib_t& getShaderLib(){return smLib;};
    static ShaderItem &getShaderItemByName(const std::string &name);
private:
    ShaderLib();
    ~ShaderLib();
    static lib_t smLib;
};

POCELAIN_NAMESPACE_END
